iT邦幫忙

2

[ JS個人筆記 ] Event Loop事件循環—DAY11

  • 分享至 

  • xImage
  •  

理解js單執行緒&非同步運行機制


由於js為單執行緒,也就是一次只處理一件事情並依序執行,但倘若遇到執行時間較久的程式,就會造成阻塞(全天下就都等你一個),因此有了非同步的處理機制。

  • 同步: 一次處理一件事件,等處理完後才依序下一件
  • 非同步: 事件各自執行,無依序

Event Loop

Event Loop 的機制如何使 Javscript 達到非同步呢?

  • 首先 Stack 會執行事件
  • 而當這個事件是 WebAPI 的時候,瀏覽器會執行這個 WebAPI 且結束並離開
  • 而 WebAPI 挾帶的 callback function 不會馬上被執行,直到 WebAPI 觸發完條件後 被放入 Callback Queue。
  • 最後直到 Stack 清空時,Callback Queue 裡的 callback function 才會進到 Stack 裡被執行。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言